home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.hitl.washington.edu
/
ftp.hitl.washington.edu.tar
/
ftp.hitl.washington.edu
/
pub
/
people
/
tsoper
/
CT Explorer
/
TrackingSystem.cs
< prev
next >
Wrap
Text File
|
2005-05-23
|
7KB
|
263 lines
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
namespace PCIBird
{
/// <summary>
/// Summary description for Board.
/// </summary>
public class TrackingSystem
{
//instantiate parameters
public SelectXmtrParameter SelectXmtr;
public LineFrequencyParameter LineFrequency;
public AGCModeParameter AGCMode;
public MeasurementRateParameter MeasurementRate;
public MaximumRangeParameter MaximumRange;
public MetricParameter Metric;
//TAKE THIS OUT
public RichTextBox rtb = new RichTextBox();
public System.Windows.Forms.Form trackingForm;
//create the system components
public Sensor [] sensor;
private int numberSensorsAttached;
public Board board;
public Xmtr xmtr;
public PCIBirdWrapper pciBird;
public TrackingSystem()
{
pciBird = new PCIBirdWrapper();
SelectXmtr = new SelectXmtrParameter(pciBird);
LineFrequency = new LineFrequencyParameter(pciBird);
AGCMode = new AGCModeParameter(pciBird);
MeasurementRate = new MeasurementRateParameter(pciBird);
MaximumRange = new MaximumRangeParameter(pciBird);
Metric = new MetricParameter(pciBird);
}
public void Initialize()
{
//initialize the system
pciBird.InitializeSystem();
//get system configuration
SystemConfig systemConfig = this.GetSystemConfig();
//create board
board = new Board(0,pciBird);
//create transmitter
xmtr = new Xmtr(0,pciBird);
//create array of sensors
numberSensorsAttached = 0; //number of attached sensors
for(int i = 0; i < pciBird.GetSystemConfig().numberSensors; i++)
numberSensorsAttached += pciBird.GetSensorConfig((ushort)i).attached;
sensor = new Sensor[numberSensorsAttached];
int attachedIdx = 0;
for(int i = 0; i < pciBird.GetSystemConfig().numberSensors; i++)
{
if(pciBird.GetSensorConfig((ushort)i).attached.Equals(1))
{
sensor[attachedIdx] = new Sensor((ushort)i,pciBird);
attachedIdx++;
}
}
//select the transmitter
this.SelectXmtr.Set(0);
}
public void Shutdown()
{
pciBird.ShutdownSystem();
}
public SystemConfig GetSystemConfig()
{
return pciBird.GetSystemConfig();
}
public int GetNumberSensorsAttached()
{
return numberSensorsAttached;
}
public void PrintSystemConfig(RichTextBox rtb)
{
SystemConfig sc = GetSystemConfig();
string configStr = "\n\nSYSTEM CONFIGURATION:\n" +
"Measurment Rate: " + sc.measurementRate + "\n" +
"Power Line Frequency: " + sc.powerLineFrequency + "\n" +
"Maximum Range: " + sc.maximumRange + "\n" +
"AGC Mode: " + sc.agcMode + "\n" +
"Number Boards: " + sc.numberBoards + "\n" +
"Number Sensors: " + sc.numberSensors + "\n" +
"Number Transmitters: " + sc.numberTransmitters + "\n" +
"Transmitter ID Running: " + sc.transmitterIDRunning;
rtb.AppendText(configStr);
}
public void PrintSystemParameters( RichTextBox rtb )
{
string paramStr = "\n\nSYSTEM PARAMETERS\n" +
"Select Transmitter: " + this.SelectXmtr.Get() + "\n" +
"Line Frequency: " + this.LineFrequency.Get() + "\n" +
"AGC Mode: " + this.AGCMode.Get() + "\n" +
"Measurment Rate: " + this.MeasurementRate.Get() + "\n" +
"Maximum Range: " + this.MaximumRange.Get() + "\n" +
"Metric: " + this.Metric.Get() + "\n";
rtb.AppendText(paramStr);
}
/************************ PARAMETER CLASSES ***********************************/
public class SelectXmtrParameter
{
PCIBirdWrapper pciBird;
public SelectXmtrParameter( PCIBirdWrapper pciBirdWrapper)
{
pciBird = pciBirdWrapper;
}
public short Get()
{
object o = new short();
pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.SELECT_TRANSMITTER,o,2);
return Convert.ToInt16(o);
}
public void Set(short xmtrId)
{
pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.SELECT_TRANSMITTER,xmtrId,2);
return;
}
}
public class LineFrequencyParameter
{
PCIBirdWrapper pciBird;
public LineFrequencyParameter(PCIBirdWrapper pciBirdWrapper)
{
pciBird = pciBirdWrapper;
}
public double Get()
{
object o = new double();
pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.POWER_LINE_FREQUENCY,o,8);
return Convert.ToDouble(o);
}
public void Set(double lf)
{
pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.POWER_LINE_FREQUENCY,lf,8);
return;
}
}
public class AGCModeParameter
{
PCIBirdWrapper pciBird;
public AGCModeParameter(PCIBirdWrapper pciBirdWrapper)
{
pciBird = pciBirdWrapper;
}
public AGC_MODE_TYPE Get()
{
object o = new int();
pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.AGC_MODE,o,4);
return (AGC_MODE_TYPE)Convert.ToInt32(o);
}
public void Set(AGC_MODE_TYPE agc )
{
pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.AGC_MODE,(int)agc,4);
return;
}
}
public class MeasurementRateParameter
{
PCIBirdWrapper pciBird;
public MeasurementRateParameter(PCIBirdWrapper pciBirdWrapper)
{
pciBird = pciBirdWrapper;
}
public double Get()
{
object o = new double();
pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.MEASUREMENT_RATE,o,8);
return Convert.ToDouble(o);
}
public void Set(double mr)
{
pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.MEASUREMENT_RATE,mr,8);
return;
}
}
public class MaximumRangeParameter
{
PCIBirdWrapper pciBird;
public MaximumRangeParameter(PCIBirdWrapper pciBirdWrapper)
{
pciBird = pciBirdWrapper;
}
public double Get()
{
object o = new double();
pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.MAXIMUM_RANGE,o,8);
return Convert.ToDouble(o);
}
public void Set(double mr)
{
pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.MAXIMUM_RANGE,mr,8);
return;
}
}
public class MetricParameter
{
PCIBirdWrapper pciBird;
public MetricParameter(PCIBirdWrapper pciBirdWrapper)
{
pciBird = pciBirdWrapper;
}
public bool Get()
{
object o = new int();
pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.METRIC,o,4);
return Convert.ToBoolean(o);
}
public void Set(bool torf)
{
int metric = torf.CompareTo(false);
pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.METRIC,metric,4);
return;
}
}
}
}